/**
 *
 */
package br.com.werp.regras.pessoa.integracao;

import br.com.werp.regras.geral.Debuger;
import br.com.werp.regras.geral.integracao.MasterDAO;
import br.com.werp.regras.geral.util.Constantes;
import br.com.werp.regras.geral.vos.pessoa.OrgaoPublicoVO;
import br.com.werp.regras.geral.vos.tabelas.Orgao_publico;

import java.sql.Connection;
import java.sql.PreparedStatement;

import java.util.List;


/**
 * @author Italo
 *
 *26/06/2006
 */
public class OrgaoPublicoDAO extends MasterDAO {
    private static OrgaoPublicoDAO orgaoPublicoDAO;
    private static String EXCLUIR_ORGAO_PUBLICO = "EXCLUIR_ORGAO_PUBLICO";

    private OrgaoPublicoDAO(String banco) throws Exception {
        super(banco);
    }

    public static OrgaoPublicoDAO getOrgaoPublicoDAO()
        throws Exception {
        if (orgaoPublicoDAO == null) {
            orgaoPublicoDAO = new OrgaoPublicoDAO(Constantes.BANCO);
        }

        return orgaoPublicoDAO;
    }

    public List pesquisarOrgaoPublico(OrgaoPublicoVO orgaoPublicoVO)
        throws Exception {
        Connection connection = getConexao();

        try {
            String where = " and pess_id = orpb_pessoa ";
            String tabelas = "pessoa,orgao_publico";

            return pesquisarVO(connection, orgaoPublicoVO, where, tabelas,
                orgaoPublicoVO.EXCLUIDAS);
        } finally {
            liberaConeccao(connection);
        }
    }

    public void atualizarOrgaoPublico(Object key, Orgao_publico orgao_publico)
        throws Exception {
        atualizarVO(validarTransacao(key), orgao_publico,
            new String[] { "orpb_pessoa" });
    }

	public void excluirOrgaoPublico(Object key, Orgao_publico orgao_publico) throws Exception {
		
		Connection connection = validarTransacao(key);

        excluirVO(connection, orgao_publico);
	}
}
